/**
 * 生产队列请求块
 */
interface SpawnRequest {
    name?: string;
    role: CreepRole;
    body: string;
    data?: Partial<CreepMemory>;
    priority?: number;
}

interface ColonyMemory {
    /**
     * spawn 请求队列
     */
    spawnList?: SpawnRequest[];
    /**
     * 启动模式 counter
     */
    spawnStage?: number;
}

/**
 * @example
 * const body: BodyTable = [
 *   [[WORK, 1], [MOVE, 1], [CARRY, 1]],
 *   [[WORK, 2], [MOVE, 2], [CARRY, 2]],
 *   ...
 * ]
 */
type BodyTable = [BodyPartConstant, number][][];

interface SpawnMemory {
    /**
     * 标记这个 spawn 在房间里是几号 spawn。从左到右分别是 0-2。
     */
    i: number;
}